关于MyBatis

您所在的位置:网站首页 mybatisplus or查询如何用括号包起来 关于MyBatis

关于MyBatis

2024-07-09 11:24| 来源: 网络整理| 查看: 265

文章目录 前言一、问题描述二、解决步骤1.声明对QueryWrapper对象的编辑方法2.调用方法 总结

前言

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了QueryWrapper自定义查询对象,可以无需手写sql,进行条件查询。在其中的and()和or()方法,可以进行条件的连接。

一、问题描述

需要生成的搜索条件带多层and/or,且要在循环中处理,没法一次处理完成。

二、解决步骤 1.声明对QueryWrapper对象的编辑方法

代码如下(示例):

/** * 生成筛选条件 */ public static void createQW(QueryWrapper qw, JSONArray devList) { // 循环体,采用递归也可 for (int i = 0; i qw1.eq("deviceid", deviceid).eq("devtype", devtype)); } else { qw.or(qw1 -> qw1.eq("deviceid", deviceid).eq("devtype", devtype)); } } } 2.调用方法

代码如下(示例):

JSONArray devList = postJb.getJSONObject("dev_list").getJSONArray("valuelist"); QueryWrapper deviceQW = new QueryWrapper(); deviceQW.eq("del_flag", WeChatDeviceUtil.DEL_FLAG_NORMAL); // 调用方法,在and中嵌套了一层 deviceQW.and(qw -> createQW(qw, devList)); List devices = weChatDeviceMapper.selectList(deviceQW); 总结

对queryMapper处理的lamda表达式中可以调用自定义的方法,在里面进行多层sql的处理

引用: 关于MybatisPlus的QueryWrapper定义查询条件的and()和or()方法连用问题https://blog.csdn.net/qq_42846022/article/details/105191967



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3